
//封装ajax
function ajax(obj){
    //1、先处理一下obj中的数据（希望可以后续直接用）
    let default_obj = {
        method:obj.method || 'get',//
        url:obj.url,
        data:null,//先默认为空，封装一个函授，处理data数据，后续根据需要调用该函数
        boolean:obj.boolean!==false?true:false,
        header:obj.header? obj.header:null
    }
  
    if(obj.data){
        if(default_obj.method=='get'){
            default_obj.data = toParams(obj.data)
            default_obj.url  =default_obj.url+'?'+ toParams(obj.data)
        }else{
            if(obj.header['content-type']=='application/x-www-form-urlencoded'){
                default_obj.data = toParams(obj.data)
            }else{
                default_obj.data =JSON.stringify(obj.data)
            }
        }
    }
    //3、定义promise，要开始发送请求的四步了！
    let p = new Promise ((resolve,reject)=>{
        //定义ajax
        //创建请求对象
        const xhr = new XMLHttpRequest()
        //利用请求对象创建一个请求
        xhr.open(default_obj.method,default_obj.url,default_obj.boolean)
        //监听请求事件是否成功
        xhr.onload = function(){
            let res = JSON.parse(xhr.responseText)//res承接一下需要发送的那个对象
            console.log(res);
            if(res.code ==0){
                resolve(res)
            }
            else{
                reject(res)
            }
        }
        // 3-2、判断请求方式
        //遍历请求头里的content-type和authorization，在其他页面调用接口时谁的请求头中需要哪个就给哪个
        if(default_obj.header){
            for(let key in default_obj.header){
                xhr.setRequestHeader(key,default_obj.header[key])
            }
            xhr.send(default_obj.data)//如果是post方式就把参数写进去再发送请求
        }else{
            xhr.send()//get方式发送请求
        }
    })
    return p
}

export default ajax